package com.bfly.mall.wechat.minipro.dto.message;

import com.alibaba.fastjson.JSONObject;

import java.util.Date;

/**
 * 微信订单发货成功通知
 *
 * @author 长沙商脉科技有限公司
 * @date 2020/12/13 18:54
 */
public class WeChatShipSuccessMessage extends WeChatSubscribeMessage {

    private static final long serialVersionUID = -6180032707282598022L;
    /**
     * 所需下发的订阅模板id
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/13 13:57
     */
    private String templateId = "ZuDgWqoWgb0ol6UkfguqafCJKW2Iyfgk-eyTI3paKcs";

    /**
     * 物品名称
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/13 20:13
     */
    private String productName;

    /**
     * 快递公司名称
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/13 20:14
     */
    private String expressName;

    /**
     * 快递单号
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/14 19:28
     */
    private String expressNo;

    /**
     * 发货时间
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/13 20:14
     */
    private Date time;

    @Override
    public String toString() {
        JSONObject json = new JSONObject();
        json.put("touser", getTouser());
        json.put("template_id", getTemplateId());
        json.put("page", getPage());
        json.put("miniprogram_state",getState());

        JSONObject dataJson = new JSONObject();

        JSONObject valueJson = new JSONObject();
        valueJson.put("value", getOrderNo());
        dataJson.put("character_string2", valueJson);

        valueJson = new JSONObject();
        valueJson.put("value", getExpressNo());
        dataJson.put("character_string5", valueJson);

        valueJson = new JSONObject();
        valueJson.put("value", getProductName());
        dataJson.put("thing1", valueJson);

        valueJson = new JSONObject();
        valueJson.put("value", getExpressName());
        dataJson.put("thing4", valueJson);

        valueJson = new JSONObject();
        valueJson.put("value", getTime());
        dataJson.put("date8", valueJson);

        super.cutValueLength(dataJson);
        json.put("data", dataJson);
        return json.toJSONString();
    }

    public String getExpressNo() {
        return expressNo;
    }

    public void setExpressNo(String expressNo) {
        this.expressNo = expressNo;
    }

    public String getTemplateId() {
        return templateId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getExpressName() {
        return expressName;
    }

    public void setExpressName(String expressName) {
        this.expressName = expressName;
    }

    public Date getTime() {
        return time;
    }

    public void setTime(Date time) {
        this.time = time;
    }
}
